package com.bdqn.singleton;

/**
 * 计数器
 *
 * 单例模式 懒汉式 线程安全
 */
public class CounterSingleton02 {

    // 懒汉式 定义本类私有的对象，并实例化
    private static CounterSingleton02 instance;
    // 将默认构造方法定义为私有的，外部将不能直接实例化
    private CounterSingleton02() {}
    /**
     * 获得唯一实例
     *
     * @return
     */
    public static synchronized CounterSingleton02 getInstance() {
        if (instance == null) {
            instance = new CounterSingleton02();
        }
        return instance;
    }

    int count = 0; // 计数器成员变量

    /**
     * 计数
     *
     * @return
     */
    public int count() {
        return this.count++;
    }
}
